From 6f4a77bb3c8a49413af01b532c07085db1960010 Mon Sep 17 00:00:00 2001 From: Matthias Clasen Date: Fri, 20 Apr 2018 16:56:28 -0400 Subject: [PATCH] printing: Be more careful when deserializing The GVariant we are getting here might not be coming from GTK+, but rather from some other source. Best to be forgiving and deal with missing data without crashing. This was causing the GTK+ portal backends to crash on print requests from Qt. --- gtk/gtkpagesetup.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/gtk/gtkpagesetup.c b/gtk/gtkpagesetup.c index f1856c7dd2..0769b8aeac 100644 --- a/gtk/gtkpagesetup.c +++ b/gtk/gtkpagesetup.c @@ -848,8 +848,11 @@ gtk_page_setup_new_from_gvariant (GVariant *variant) setup = gtk_page_setup_new (); paper_size = gtk_paper_size_new_from_gvariant (variant); - gtk_page_setup_set_paper_size (setup, paper_size); - gtk_paper_size_free (paper_size); + if (paper_size) + { + gtk_page_setup_set_paper_size (setup, paper_size); + gtk_paper_size_free (paper_size); + } if (g_variant_lookup (variant, "MarginTop", "d", &margin)) gtk_page_setup_set_top_margin (setup, margin, GTK_UNIT_MM); -- 2.30.2